Graphics processing units (GPUs) are frequently used to operate on large amounts of data to generate frames of image data for display. The execution of GPU instructions may consume considerable power. GPUs are typically designed to allow a large amount of parallel execution. High power consumption may be problematic, particularly in mobile graphics applications in which a battery is used as a power source.
Graphics operands are often used multiple times in close succession. Using an operand cache between a register file and execution circuitry may reduce power consumption in accessing such operands, e.g., by avoiding multiple accesses to the register file. Managing an operand cache may be challenging, however, in implementations with features such as parallel execution, out-of-order execution, multi-threaded execution, independent control of execution units or groups of execution units, and/or clause-based execution, for example.